Systems and methods for inline object detection using a hue saturation value

ABSTRACT

A system and method for inline object detection using hue saturation value. One method includes determining, with an electronic processor running a single object classifier, a hue saturation value range. The method includes receiving a digital image including an object. The method includes detecting, without reloading the single object classifier, a macroblock from the digital image, the macroblock associated with the object. The method includes determining a target region within the macroblock. The method includes determining a quantity of pixels in the target region having a hue saturation value within the hue saturation value range. The method includes, when the quantity of pixels exceeds a threshold, completing object classification of the macroblock.

BACKGROUND OF THE INVENTION

Public safety personnel patrolling or responding to an incident in anarea may need to locate a suspect, a missing person, a stolen vehicle,or other persons or objects of interest. In some cases (for example, ina large or crowded area), manual visual scanning may not be sufficientto locate an object of interest. Accordingly public safety personnel mayuse mobile media devices (for example, a body worn camera, a drone or avehicle-mounted device such as an in-vehicle dash camera), which captureimages of the area to assist them in locating objects of interest. Forexample, captured video images may be analyzed using multiple-objectclassifiers, multiple single object classifiers, or single objectclassifiers combined with post filtering to identify objects of interestin video images. In some cases, it is desirable to locate a person orobject of interest based on a particular color (for example, a crimesuspect wearing a red shirt). Quick and accurate identification of anobject of interest can improve outcomes for public safety patrol andresponse efforts.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying figures, where like reference numerals refer toidentical or functionally similar elements throughout the separateviews, together with the detailed description below, are incorporated inand form part of the specification, and serve to further illustrateembodiments of concepts that include the claimed invention, and explainvarious principles and advantages of those embodiments.

FIG. 1 is a diagram of a mobile media device in accordance with someembodiments.

FIG. 2 illustrates a sample input image received by the mobile mediadevice of FIG. 1 in accordance with some embodiments.

FIG. 3 is a flow chart of a method of detecting an object in accordancewith some embodiments.

FIG. 4 illustrates a flow diagram for the identification of an object inaccordance with some embodiments.

FIG. 5 illustrates a neural network performing object detection on amacroblock in accordance with some embodiments.

FIG. 6 illustrates the CPU usage and the time required to classify anobject of interest using in accordance with some embodiments.

The apparatus and method components have been represented whereappropriate by conventional symbols in the drawings, showing only thosespecific details that are pertinent to understanding the embodiments ofthe present invention so as not to obscure the disclosure with detailsthat will be readily apparent to those of ordinary skill in the arthaving the benefit of the description herein.

DETAILED DESCRIPTION OF THE INVENTION

Public safety personnel may use mobile media devices to capture imagesand analyze images to assist them in locating objects of interest. Somemobile media devices implement real-time object identification usingvideo analytic engines, which utilize classifiers, neural networks, andthe like to detect and identify objects. A classifier is a machinelearning-based software tool (for example, a neural network) trained todetect an object in an image or a series of image. For example, a facedetection classifier is generated by providing a neural network with atraining data set of numerous positive images (images of faces) andnegative images (images without faces). Once sufficiently trained, theclassifier may then be used to detect objects in other images.Classifiers may be implemented as multi-object classifiers andsingle-object classifiers.

Public safety personnel may use such classifiers to analyze video tolocate objects of interest. For example, a police officer patrolling acrowd may be dispatched to look for a male suspect wearing an orangeshirt. The police officer may use a mobile media device, such as abody-worn camera, to aid in his or her search. The body-worn cameracaptures video images of the crowd, and analyzes those images usingclassifiers to detect a male human wearing an orange shirt (for example,using face detection).

Multi-object classifiers are trained to detect multiple objects havingmultiple variations within the field of view of a frame. For example, amulti-object classifier may be trained to detect many face and shirtcolor combinations. A classifier may look for male faces wearing blue,orange, white, yellow, red, or other colored shirts. However,multi-object classifiers must, by their nature, make more comparisonsand perform more feature extractions. They transverse more conventionallayers as part of the neural network and are therefore morecomputationally-complex and intensive, takes a longer time to detect aparticular object of interest. Multiple-object classifiers may alsoresult in a high rate of false positive detections.

In contrast, single object classifiers are trained to detect only oneobject. Single classifiers are thus quicker than multi-objectclassifiers, but are only able to detect the one single object they aretrained to detect. If a classifier is trained to detect a male facewearing a blue shirt, it will not detect a female face wearing a blueshirt or a male face wearing an orange shirt. When using single objectclassifiers, multiple single classifiers must be trained and availablefor loading in order to look for more than one object of interest. Thisincreases the time required to locate an object, especially when a newobject of interest is identified. For example, if a police officer islooking for a suspect wearing an orange shirt, and is then informed thatthe suspect may be wearing a blue jacket now, a new classifier must beloaded.

In some instances, a single object classifier may be combined with apost-filter to locate an object of interest among multiple objects ofthe same type, based on a particular description or feature, forexample, a color. For example, a single object classifier may locate tenfaces in a crowd, and the post-filtering may be performed on the facesto look for an orange shirt. However, this technique is computationallyintensive and more time consuming than single object detection, becausethe classifier likely will detect many objects that do not match theobject of interest, and another process iteration is applied to parsethe distinction between similar objects of interest. This post filteringadds time and CPU cycles on top of the detection process.

Accordingly, embodiments described herein provide for a single objectclassifier that is available at the edge of a communication network suchas on a mobile media device used by an emergency responder that enablesthe emergency responder to quickly and accurately detect and identifyobjects of interest. Some of the methods provided herein are capable ofdetecting large regions of a desired color, to small “blobs” of color,providing a more efficient and fast method as compared to themulti-object classifier, multiple single object classifier, and singleobject classifier with post-filtering methods described above.

One example embodiment provides a method for inline object detection.The method includes determining, with an electronic processor running asingle object classifier, a hue saturation value range. The methodincludes receiving a digital image including an object. The methodincludes detecting, without reloading the single object classifier, amacroblock from the digital image, the macroblock associated with theobject. The method includes determining a target region within themacroblock. The method includes determining a quantity of pixels in thetarget region having a hue saturation value within the hue saturationvalue range. The method includes, when the quantity of pixels exceeds athreshold, completing object classification of the macroblock.

Another example embodiment provides a mobile media device. The mobilemedia includes an electronic processor. The electronic processor isconfigured to provide a single object classifier. The electronicprocessor is configured to determine a hue saturation value range. Theelectronic processor is configured to receive a digital image includingan object. The electronic processor is configured to detect, withoutreloading the single object classifier, a macroblock from the digitalimage, the macroblock associated with the object. The electronicprocessor is configured to determine a target region within themacroblock. The electronic processor is configured to determine aquantity of pixels in the target region having a hue saturation valuewithin the hue saturation value range. The electronic processor isconfigured to, when the quantity of pixels exceeds a threshold, completeobject classification of the macroblock.

Another example embodiment provides a non-transitory computer-readablemedium including instructions executable by an electronic processor toperform a set of functions. The set of functions includes determining,with the electronic processor running a single object classifier, a huesaturation value range. The set of functions includes receiving adigital image including an object. The set of functions includesdetecting, without reloading the single object classifier, a macroblockfrom the digital image, the macroblock associated with the object. Theset of functions includes determining a target region within themacroblock. The set of functions includes determining a quantity ofpixels in the target region having a hue saturation value within the huesaturation value range. The set of functions includes, when the quantityof pixels exceeds a threshold, completing object classification of themacroblock. The set of functions includes when the quantity of pixelsdoes not exceed the threshold, discarding the macroblock.

For ease of description, some or all of the example systems presentedherein are illustrated with a single example of each of its componentparts. Some examples may not describe or illustrate all components ofthe systems. Other example embodiments may include more or fewer of eachof the illustrated components, may combine some components, or mayinclude additional or alternative components.

FIG. 1 is a diagram of a mobile media device 100 in accordance with someembodiments. In the example illustrated, the mobile media device 100includes an electronic processor 102, a memory 104, a communicationinterface 106, a user interface 108, a display 110, and an image sensor112. The illustrated components, along with other various modules andcomponents are coupled to each other by or through one or more controlor data buses that enable communication therebetween. The use of controland data buses for the interconnection between and exchange ofinformation among the various modules and components would be apparentto a person skilled in the art in view of the description providedherein. The mobile media device 100 is presented as an example that maybe programmed and configured to carry out the functions describedherein. In some embodiments, the mobile media device 100 may be ahandheld device or a wearable device. For example, the mobile mediadevice 100 may be a portable communication device, such as, for examplea portable two-way radio including a camera, a body-worn camera, a smarttelephone, a tablet computer, and the like. In some embodiments,components of the mobile media device 100 may be separately implemented,and may be communicatively coupled by a bus or by a suitablecommunication network. For example, the mobile media device 100 mayinclude a dash camera in a vehicle coupled to a mobile two-way radio, anetwork-connected portable computer, or similar device in or coupled tothe vehicle. It should be understood that, in other constructions, themobile media device 100 includes additional, fewer, or differentcomponents than those illustrated in FIG. 1.

As illustrated in FIG. 1, in some embodiments, the mobile media device100 is communicatively coupled to, and writes data to and from, adatabase 101. The database 101 may be a database housed on a suitabledatabase server communicatively coupled to and accessible by the mobilemedia device 100. In alternative embodiments, the database 101 may bepart of a cloud-based database system accessible by the mobile mediadevice 100 over one or more networks. In some embodiments, all or partof the database 101 may be locally stored on the mobile media device100. In some embodiments, as described below, the database 101electronically stores data on incidents (for example, incident reportscreated by a law enforcement agency). In some embodiments, the database101 is part of a computer-aided dispatch system.

The electronic processor 102 obtains and provides information (forexample, from the memory 104 and/or the communication interface 106),and processes the information by executing one or more softwareinstructions or modules, capable of being stored, for example, in arandom access memory (“RAM”) area of the memory 104 or a read onlymemory (“ROM”) of the memory 104 or another non-transitory computerreadable medium (not shown). The software can include firmware, one ormore applications, program data, filters, rules, one or more programmodules, and other executable instructions. The electronic processor 102is configured to retrieve from the memory 104 and execute, among otherthings, software related to the control processes and methods describedherein.

The memory 104 can include one or more non-transitory computer-readablemedia, and includes a program storage area and a data storage area. Theprogram storage area and the data storage area can include combinationsof different types of memory, as described herein. The memory 104 maytake the form of any non-transitory computer-readable medium. In theembodiment illustrated, the memory 104 stores, among other things, avideo analytics engine 113. The video analytics engine 113 analyzesvideo (and other media) to, among other things, identify and detectobjects, shapes, motion, and the like within the video. The videoanalytics engine 113 includes a classifier 114 (described in detailbelow), which the video analytics engine 113 utilizes for objectdetection. In some embodiments, the video analytics engine 113 includesother features, for example, neural networks, for object detection andvideo analysis.

The communication interface 106 may include a transceiver for wirelesslycoupling to wireless networks (for example, land mobile radio (LMR)networks, Long Term Evolution (LTE) networks, Global System for MobileCommunications (or Groupe Special Mobile (GSM)) networks, Code DivisionMultiple Access (CDMA) networks, Evolution-Data Optimized (EV-DO)networks, Enhanced Data Rates for GSM Evolution (EDGE) networks, 3Gnetworks, 4G networks, combinations or derivatives thereof, and othersuitable networks, including future-developed network architectures.Alternatively, or in addition, the communication interface 106 mayinclude a connector or port for receiving a connection to a wirednetwork (for example, Ethernet).

The user interface 108 operates to receive input from, for example, auser of the mobile media device 100, to provide system output, or acombination of both. The user interface 108 obtains information andsignals from, and provides information and signals to, (for example,over one or more wired and/or wireless connections) devices bothinternal and external to the mobile media device 100. Input may beprovided via, for example, a keypad, a microphone, soft keys, icons, orsoft buttons on the display 110, a scroll ball, buttons, and the like.System output may be provided via the display 110. The display 110 is asuitable display such as, for example, a liquid crystal display (LCD)touch screen, or an organic light-emitting diode (OLED) touch screen.The mobile media device 100 may implement a graphical user interface(GUI) (for example, generated by the electronic processor 102, frominstructions and data stored in the memory 104, and presented on thedisplay 110), that enables a user to interact with the mobile mediadevice 100. In some embodiments, the mobile media device 100 operates oris integrated with a head-mounted display (HMD) or an opticalhead-mounted display (OHMD).

The image sensor 112 is an image capture device for capturing images by,for example, sensing light in at least the visible spectrum. The imagesensor 112 communicates the captured images to the electronic processor.It should be noted that the terms “image” and “images,” as used herein,may refer to one or more digital images captured by the image sensor112, or processed by the electronic processor 102, or displayed on thedisplay 110. Further, the terms “image” and “images,” as used herein,may refer to still images or sequences of images (for example, a videostream).

FIG. 2 illustrates one example of an image 200 received by the mobilemedia device 100. The image 200 includes macro-blocks 202, 206, 210 and214, each including a face. Macro-block 202 includes a face 203 of aperson wearing a white shirt 204. Macro-block 206 includes a face 207 ofa person wearing a blue shirt 208. Macro-block 210 includes a face 211of a person wearing a yellow shirt 212. Macro-block 214 includes a face215 of a person wearing an orange shirt 216. As an example, the image200 depicts students in a classroom setting. The systems and methodsdescribed herein may also be used with images of other settings thatinclude one or more persons or objects such as, for example, settings ofa sidewalk or a street, or objects such as entire bodies, vehicles,weapons, backpacks, and the like.

FIG. 3 illustrates an example method 300 for inline object detectionusing a hue saturation value. As an example, the method 300 is explainedin terms of the mobile media device 100 capturing and analyzing theimage 200 of FIG. 2 to detect an object of interest, namely a person whois wearing an orange shirt. As described in detail below, the method 300detects the object of interest by detecting a face and, prior tocompleting the detection of the face, performing a hue saturation valueto detect the orange shirt. The method 300 is described with respect toFIG. 4, which illustrates the identification of one or more macro-blockswithin the image 200. The method 300 is described as being performed bythe mobile media device 100 and, in particular, the electronic processor102 executing the video analytics engine 113 and the single objectclassifier 114. However, it should be understood that in someembodiments, portions of the method 300 may be performed by otherdevices, including for example, a computer located in a public safetyvehicle and wirelessly coupled to the mobile media device 100. It shouldalso be understood that in some embodiments, portions of the method 300may be used to detect other objects of interest besides a face andperform a hue saturation value to detect other target regions.

Throughout the execution of the method 300, the electronic processor 102is running a classifier. In the embodiment described, the classifier isthe single object classifier 114 trained to detect the face and uppertorso region of a person. The single object classifier 114 is loaded andruns as part of a video processing or other application (for example,the video analytics engine 113) on the mobile media device 100. Forexample, the mobile media device 100 may be a body-worn camera recordingand processing video using the video analytics engine 113 and the singleobject classifier 114. After the single object classifier 114 is loaded(for example, by starting an application using the video analyticsengine 113), and while the single object classifier 114 is running, theelectronic processor 102 executes the method 300 to detect the object ofinterest using a hue saturation value.

At block 310, the electronic processor 102 determines a hue saturationvalue range. In some embodiments, the electronic processor 102 receivesa user input indicating a particular hue saturation value range (forexample, corresponding to an orange color or color range). In anotherembodiment, the electronic processor 102 automatically selects a huesaturation value range from the database 101, for example, a suspectdescription in an incident report received from a computer aideddispatch system. The hue saturation value range corresponds to a coloror range of colors, depending on how large the range is. The range isdetermined, for example, based on how precisely the color being soughtis known. For example, the color of a shirt worn by a suspect may havebeen reported as “blue” by a witness, or it may have been determinedfrom a high-definition video image of the suspect. In some embodiments,the hue saturation value range is adjusted based on environmentalfactors that may affect how the color of the object of interest isperceived, such as, for example, whether the mobile media device 100 iscapturing images indoors, outdoors, during the day, or at night. Becausein this example the object of interest is a person wearing an orangeshirt, the hue saturation value range is determined based on the colororange. In some embodiments, the hue saturation range is dynamic, andcan be changed by subsequent user inputs.

At block 320, the electronic processor 102 receives a digital image (forexample, the image 200) including one or more objects. One of theobjects may be the object of interest. In this example, the object ofinterest is the face 215 of a person wearing an orange shirt 216. Asshown in the image 200 of FIG. 2, the digital image 200 may includeother objects, some of which are similar to the object of interest. Forexample, the image 200 also includes faces 203, 207, 211 of three otherpeople wearing shirts 204, 208, 212. In one embodiment, the digitalimage is captured by the image sensor 112 and received by the electronicprocessor 102. In other embodiments, the digital image is received froma remote camera.

Returning to FIG. 3, at block 330, the electronic processor 102 (forexample, using the single object classifier 114) detects a macroblock(for example, the macroblock 214) from the digital image that isassociated with the object of interest. Macroblock detection is donewithout reloading the single object classifier 114. The macroblock 214is detected, for example, by a neural network using the single objectclassifier 114 in the conventional or sub-sampling layers during featureextraction. The single object classifier 114 is used to detect anobject, for example, a face. However, as described below, prior tomaking an assertion of detection, the single object classifier 114performs a hue saturation value check on a target region of themacroblock 214.

At block 340, the electronic processor 102 determines a target regionwithin the macro-block 214. The target region may be located atdifferent locations within the macroblock 214. For example, when aperson being sought is wearing a particular color shirt, the targetregion is placed below the detected face. In the example illustrated inFIG. 4, the target region 410 is chosen to be in the bottom of themacro-block 214 in order to detect the color of the shirt worn by theperson having the face 215. In another example, the sought-after personmay be wearing a particular color of hat, which would place the targetregion near the top of the macro-block 214, above the detected face 215.In some embodiments, the target region may be a smaller region, relativeto the size of a region used to detect an article of clothing. Forexample, such smaller target regions may be used to detect the color ofa person's eyes, a tattoo, a mole, another physical feature of aparticular color, a logo or patch on an a larger article of clothing, anarticle of jewelry worn by a person, similar smaller-sized objects of aparticular color, or a smaller area of a particular color within alarger area of a different color. In some embodiments, the target regionis determined based on receiving a user input. For example, the user ofthe mobile media device 100 may indicate that the sought-after person iswearing an orange shirt, is wearing a black hat, has blue eyes, or someother descriptive feature, which can be used by the electronic processor102 to determine the target region. In another embodiment, the targetregion may be retrieved from the database 101. For example, the targetregion may be part of an incident record in a computer-aided dispatchsystem.

Returning to FIG. 3, at block 350, the electronic processor 102determines a quantity of pixels in the target region 410 having a huesaturation value within the hue saturation value range. In this example,the electronic processor looks at each pixel in the target region 410 todetermine whether it is orange. That is, the electronic processor 102determines whether a pixel's hue saturation value falls within the huesaturation range determined at block 310, which is a range around andincluding the color orange.

At block 360, the electronic processor 102 determines whether thequantity of pixels exceeds a threshold. The threshold may be determinedexperimentally and is set such that it is more likely than not that anorange shirt is present in the macroblock 214. In some embodiments, thethreshold is a percentage of the total pixels in the target region 410.Detection thresholds may be changed dynamically without requiring are-initialization of the image detection system. In some embodiments,the electronic processor 102 receives the threshold from a user input.

At block 370 when the quantity of pixels exceeds the threshold, thesingle object classifier 114 completes the object classification processfor the macroblock 214, and indicates that it has detected the object ofinterest (in this example, a person who is wearing an orange shirt). Thehue saturation check, described above with respect to block 350 of themethod 300, takes place at some point prior to full classification ofthe object in the macroblock by the single object classifier 114. Insome embodiments, the hue saturation check is performed by the singleobject classifier 114 after feature extraction, but before theclassification layer. In other embodiments, the hue saturation check isperformed after the classification layer, but before the output layer.For example, FIG. 5 illustrates a neural network 502 performing objectdetection on the macroblock 214. As illustrated in FIG. 5, the huesaturation value check may take place after the sub-sampling of thefeature extraction section, and prior to the classification section (at504). Optionally, the check can also be applied after the fullyconnected nodes, but prior to finalizing the output (at 506). Returningto FIG. 3, when the pixel quantity exceeds the threshold, the electronicprocessor 102 determines that the object, if identified, may be theobject of interest based on the hue saturation value, and thus completesthe classification process.

In some embodiments, in response to completing the object classificationof the macroblock (that is, detecting the object of interest); theelectronic processor 102 presents an indication that the object ofinterest has been detected on the display 110. The indication may begraphical, text-based, or both. In some embodiments, the electronicprocessor 102 may use augmented reality to indicate the object ofinterest on a live video stream that includes the object of interest.

At block 380, when the quantity of pixels fails to exceed the threshold,the electronic processor 102 discards the macroblock. In someembodiments, discarding the macroblock means stopping the classificationprocess. Blocks 310 through 370 were described above with respect to themacroblock 214, which included the object of interest. Where blocks 310through 360 performed for macro-blocks 202, 206, or 210, where there wasno orange shirt, classification of those macro-blocks would stop atblock 380.

As shown in FIG. 3, whether or not an object is detected, orclassification of a macroblock is stopped, the method 300 may beginagain at block 310 by determining a hue saturation value range. The huesaturation value range may remain constant, or it may change (forexample, in response to a user input indicating a new hue saturationvalue range). In either case, the single object classifier 114 continuesdetecting and classifying objects without the need to be reloaded.Accordingly, the same single object classifier 114 may be usedrepeatedly to look for similar objects (for example, a person) withdifferent colors in different target regions. For example, the singleobject classifier 114 may begin looking for a person wearing an orangeshirt, but then may be instructed to look for a person with a blueshirt. By using the method 300, a single object classifier may beefficiently used to detect objects having particular color variations,without the need for retraining.

When the threshold is not met, the classification process is notcompleted because the object, no matter what it is, does not include thedesired color in the target region. Accordingly, the single objectclassifier 114 saves time and cycles by not fully processingmacro-blocks that cannot match the object of interest. FIG. 6 includescharts 602, 604, 606 illustrating the CPU usage (in MIPs) and the timerequired to classify the same object of interest using a multi-objectclassifier, a single classifier with a post filter, and the method 300,respectively. The object of interest is an object having a particularcolor in a particular region, such as, for example, the person wearingan orange shirt described above. As shown in chart 602, the multi-objectclassifier takes more time and more CPU usage to detect an object ofinterest than the method 300, shown in chart 606. Similarly, using asingle classifier with post filtering, shown in chart 604, takes moretime than the method 300 due to the serial calculation of filteringafter the initial object detection. Because the method 300 performs ahue saturation check prior to the classifier completing detection, iteliminates the need to run multiple object classifiers or performpost-filtering; it results in a more efficient object classifier. Theobject classifier may thus be run on the edge of a network (that is, inthe mobile media device 100), without having to send the video toanother device on the network for processing. This reduces the bandwidthusage of the network and the latency associated with object detectionand classification.

In the example described above, the method 300 was used to detect aperson wearing an orange shirt. The method 300 may be similarly used todetect a person wearing a hat or other clothing item of a particularcolor. In other embodiments, the method 300 may be used for detectingcolor variances in other objects. For example, the method 300 may beused to detect an automobile that has a small area of discoloration (forexample, from being in a traffic accident). In some embodiments,multiple hue saturation values, pixel count thresholds, and targetregions may be used. For example, the method 300 may be used to detect aperson with brown eyes, wearing a blue shirt and a black hat. In anotherexample, a sought-after person is wearing a blue hat with a red “C” onit. In that situation, the electronic processor 102 determines a firsttarget region near the top of the macroblock having a blue huesaturation value and a second, smaller target region within the firsttarget region having a red hue saturation value.

It should be noted that a plurality of hardware and software baseddevices, as well as a plurality of different structural components maybe utilized to implement the invention. In some embodiments, theinvention provides a software application that is executable on apersonal computing device, such as a smart phone, tablet computer, smartwatch, a portable radio, a body-worn camera device, and the like. Insome embodiments, the software application may be stored and executed bya remote computing device, such as a server. In particular, the softwareapplication may be executed by a server, and a user can access andinteract with the software application using a mobile media device.Also, in some embodiments, functionality provided by the softwareapplication as described above may be distributed between a softwareapplication executed by a user's portable communication device and asoftware application executed by another electronic process or device(for example, a server) external to the mobile media device. Forexample, a user can execute a software application (for example, amobile application) installed on his or her smart device, which isconfigured to communicate with another software application installed ona server.

In the foregoing specification, specific embodiments have beendescribed. However, one of ordinary skill in the art appreciates thatvarious modifications and changes may be made without departing from thescope of the invention as set forth in the claims below. Accordingly,the specification and figures are to be regarded in an illustrativerather than a restrictive sense, and all such modifications are intendedto be included within the scope of present teachings.

The benefits, advantages, solutions to problems, and any element(s) thatmay cause any benefit, advantage, or solution to occur or become morepronounced are not to be construed as a critical, required, or essentialfeatures or elements of any or all the claims. The invention is definedsolely by the appended claims including any amendments made during thependency of this application and all equivalents of those claims asissued.

Moreover in this document, relational terms such as first and second,top and bottom, and the like may be used solely to distinguish oneentity or action from another entity or action without necessarilyrequiring or implying any actual such relationship or order between suchentities or actions. The terms “comprises,” “comprising,” “has,”“having,” “includes,” “including,” “contains,” “containing” or any othervariation thereof, are intended to cover a non-exclusive inclusion, suchthat a process, method, article, or apparatus that comprises, has,includes, contains a list of elements does not include only thoseelements but may include other elements not expressly listed or inherentto such process, method, article, or apparatus. An element proceeded by“comprises . . . a,” “has . . . a,” “includes . . . a,” or “contains . .. a” does not, without more constraints, preclude the existence ofadditional identical elements in the process, method, article, orapparatus that comprises, has, includes, contains the element. The terms“a” and “an” are defined as one or more unless explicitly statedotherwise herein. The terms “substantially,” “essentially,”“approximately,” “about” or any other version thereof, are defined asbeing close to as understood by one of ordinary skill in the art, and inone non-limiting embodiment the term is defined to be within 10%, inanother embodiment within 5%, in another embodiment within 1% and inanother embodiment within 0.5%. The term “coupled” as used herein isdefined as connected, although not necessarily directly and notnecessarily mechanically. A device or structure that is “configured” ina certain way is configured in at least that way, but may also beconfigured in ways that are not listed.

It will be appreciated that some embodiments may be comprised of one ormore generic or specialized electronic processors (or “processingdevices”) such as microprocessors, digital signal processors, customizedprocessors and field programmable gate arrays (FPGAs) and unique storedprogram instructions (including both software and firmware) that controlthe one or more electronic processors to implement, in conjunction withcertain non-processor circuits, some, most, or all of the functions ofthe method and/or apparatus described herein. Alternatively, some or allfunctions could be implemented by a state machine that has no storedprogram instructions, or in one or more application specific integratedcircuits (ASICs), in which each function or some combinations of certainof the functions are implemented as custom logic. Of course, acombination of the two approaches could be used.

Moreover, an embodiment may be implemented as a computer-readablestorage medium having computer readable code stored thereon forprogramming a computer (for example, comprising an electronic processor)to perform a method as described and claimed herein. Examples of suchcomputer-readable storage mediums include, but are not limited to, ahard disk, a CD-ROM, an optical storage device, a magnetic storagedevice, a ROM (Read Only Memory), a PROM (Programmable Read OnlyMemory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM(Electrically Erasable Programmable Read Only Memory) and a Flashmemory. Further, it is expected that one of ordinary skill,notwithstanding possibly significant effort and many design choicesmotivated by, for example, available time, current technology, andeconomic considerations, when guided by the concepts and principlesdisclosed herein will be readily capable of generating such softwareinstructions and programs and ICs with minimal experimentation.

The Abstract of the Disclosure is provided to allow the reader toquickly ascertain the nature of the technical disclosure. It issubmitted with the understanding that it will not be used to interpretor limit the scope or meaning of the claims. In addition, in theforegoing Detailed Description, it can be seen that various features aregrouped together in various embodiments for the purpose of streamliningthe disclosure. This method of disclosure is not to be interpreted asreflecting an intention that the claimed embodiments require morefeatures than are expressly recited in each claim. Rather, as thefollowing claims reflect, inventive subject matter lies in less than allfeatures of a single disclosed embodiment. Thus the following claims arehereby incorporated into the Detailed Description, with each claimstanding on its own as a separately claimed subject matter.

We claim:
 1. A method for inline object detection, the methodcomprising: determining, with an electronic processor running a singleobject classifier, a hue saturation value range; receiving a digitalimage including an object; detecting, without reloading the singleobject classifier, a macroblock from the digital image, the macroblockassociated with the object; determining a target region within themacroblock, the target region located directly adjacent to the object;determining a quantity of pixels in the target region having a huesaturation value within the hue saturation value range; and when thequantity of pixels exceeds a threshold, completing object classificationof the macroblock.
 2. The method of claim 1, further comprising: whenthe quantity of pixels does not exceed the threshold, discarding themacroblock.
 3. The method of claim 1, further comprising: determining asecond hue saturation value range; determining, without reloading thesingle object classifier, a quantity of pixels in the target regionhaving a hue saturation value within the second hue saturation valuerange.
 4. The method of claim 3, further comprising: determining asecond target region within the macroblock; determining, withoutreloading the single object classifier, a quantity of pixels in thesecond target region having a hue saturation value within the second huesaturation value range.
 5. The method of claim 1, wherein determining ahue saturation value range includes one of receiving a user inputindicating the hue saturation value range and retrieving the huesaturation value range from a database.
 6. The method of claim 1,wherein determining a target region includes one of receiving a userinput indicating the target region or retrieving the target region froma database.
 7. The method of claim 1, wherein detecting a macroblockincludes detecting a macroblock using the single object classifier. 8.The method of claim 1, wherein receiving the digital image includesreceiving the digital image from an image capture device of a mobilemedia device.
 9. The method of claim 1, further comprising: in responseto completing object classification of the macroblock, presenting anindication that the object of interest has been detected on a display ofthe mobile media device.
 10. A mobile media device for inline objectdetection, the mobile media device comprising: an electronic processorconfigured to provide a single object classifier, determine, with thesingle object classifier, a hue saturation value range; receive adigital image including an object; detect, without reloading the singleobject classifier, a macroblock from the digital image, the macroblockassociated with the object; determine a target region within themacroblock, the target region located directly adjacent to the object;determine a quantity of pixels in the target region having a huesaturation value within the hue saturation value range; and when thequantity of pixels exceeds a threshold, complete object classificationof the macroblock.
 11. The mobile media device of claim 10, wherein theelectronic processor is further configured to, when the quantity ofpixels does not exceed the threshold, discard the macroblock.
 12. Themobile media device of claim 10, wherein the electronic processor isfurther configured to: determine a second hue saturation value range;determine, without reloading the single object classifier, a quantity ofpixels in the target region having a hue saturation value within thesecond hue saturation value range.
 13. The mobile media device of claim12, wherein the electronic processor is further configured to: determinea second target region within the macroblock; determine, withoutreloading the single object classifier, a quantity of pixels in thesecond target region having a hue saturation value within the second huesaturation value range.
 14. The mobile media device of claim 10, whereinthe electronic processor is further configured to: receive a user inputindicating the hue saturation value range and retrieve the huesaturation value range from a database.
 15. The mobile media device ofclaim 10, wherein the electronic processor is further configured toreceive a user input indicating the target region.
 16. The mobile mediadevice of claim 10, wherein the electronic processor is furtherconfigured to retrieve the target region from a database.
 17. The mobilemedia device of claim 10, wherein the electronic processor is furtherconfigured to detect a macroblock using the single object classifier.18. The mobile media device of claim 10, wherein the electronicprocessor is configured to receive the digital image from an imagecapture device.
 19. The mobile media device of claim 10, furthercomprising: a display; wherein the electronic processor is furtherconfigured to, in response to completing object classification of themacroblock; present on the display an indication that the object ofinterest has been detected.
 20. A non-transitory computer-readablemedium including instructions executable by an electronic processor toperform a set of functions, the set of functions comprising:determining, with the electronic processor running a single objectclassifier, a hue saturation value range; receiving a digital imageincluding an object; detecting, without reloading the single objectclassifier, a macroblock from the digital image, the macroblockassociated with the object; determining a target region within themacroblock, the target region located directly adjacent to the object;determining a quantity of pixels in the target region having a huesaturation value within the hue saturation value range; when thequantity of pixels exceeds a threshold, completing object classificationof the macroblock; and when the quantity of pixels does not exceed thethreshold, discarding the macroblock.